package com.ruoyi.web.controller.system;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.entity.InstitutionMoment;
import com.ruoyi.system.service.IMomentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

/**
 * 机构动态管理模块
 *
 * 根据机构id查询本机构所有动态:selectAllMomentByitId
 * 根据动态id查询某一动态:selectMomentById
 * 根据动态id删除某一动态:removeMoment
 */

@Controller
@RequestMapping("/moment")  //添加个父目录moment
public class SysMomentController extends BaseController {

    //controller 调 service 层

    //调用并私有化service层的 IMomentService，并自动装配
    @Autowired
    @Qualifier("momentServiceImpl")
    private IMomentService iMomentService;

    //根据机构id查询本机构所有动态
    @RequestMapping("/queryByitId")//响应子目录
    public String selectAllMomentByitId(long itId, Model model){
        //调用iMomentService的selectAllMomentByitId方法查询，接收用户输入的数据itId,并作为参数传入方法，返回结果集合institutionMoments
        List<InstitutionMoment> list = iMomentService.selectAllMomentByitId(itId);
        //用model封装结果集合为list，供前端接收结果集合
        model.addAttribute("list",list);
        //最后重定向到前端列表界面并显示
        return "redirect:";
    }

    //根据动态id查询某一动态
    @RequestMapping("/queryById")//响应子目录
    public String selectMomentById(long mId, Model model){
        //调用iMomentService的selectMomentById方法查询，接收接收用户输入的数据mId，并作为参数传入方法，返回结果集合institutionMoment
        InstitutionMoment institutionMoment = iMomentService.selectMomentById(mId);
        //新建list集合，泛型为机构动态InstitutionMoment
        List<InstitutionMoment> list = new ArrayList<InstitutionMoment>();
        //将查询结果注入list
        list.add(institutionMoment);
        //查询结果为空时，生成错误信息并封装
        if(institutionMoment == null){
            model.addAttribute("error","未找到您所要查找的动态");
        }
        //用model封装结果集合为list，供前端接收结果集合
        model.addAttribute("list",list);
        //最后重定向到与之前的同一个前端列表界面并显示
        return "redirect:";
    }

    //根据动态id删除某一动态
    @RequestMapping("/removeById")//响应子目录
    public String removeMoment(long mId){
        //调用iMomentService的removeMoment方法删除，接收接收用户输入的数据mId，并作为参数传入方法
        boolean removeMoment = iMomentService.removeMoment(mId);
        //最后重定向到前端列表界面并显示
        return "redirect:";
    }
}
